home *** CD-ROM | disk | FTP | other *** search
/ IRIX Base Documentation 2002 November / SGI IRIX Base Documentation 2002 November.iso / usr / share / catman / p_man / cat3 / SCSL / clatrd.z / clatrd
Encoding:
Text File  |  2002-10-03  |  7.3 KB  |  199 lines

  1.  
  2.  
  3.  
  4. CCCCLLLLAAAATTTTRRRRDDDD((((3333SSSS))))                                                          CCCCLLLLAAAATTTTRRRRDDDD((((3333SSSS))))
  5.  
  6.  
  7.  
  8. NNNNAAAAMMMMEEEE
  9.      CLATRD - reduce NB rows and columns of a complex Hermitian matrix A to
  10.      Hermitian tridiagonal form by a unitary similarity transformation Q' * A
  11.      * Q, and returns the matrices V and W which are needed to apply the
  12.      transformation to the unreduced part of A
  13.  
  14. SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
  15.      SUBROUTINE CLATRD( UPLO, N, NB, A, LDA, E, TAU, W, LDW )
  16.  
  17.          CHARACTER      UPLO
  18.  
  19.          INTEGER        LDA, LDW, N, NB
  20.  
  21.          REAL           E( * )
  22.  
  23.          COMPLEX        A( LDA, * ), TAU( * ), W( LDW, * )
  24.  
  25. IIIIMMMMPPPPLLLLEEEEMMMMEEEENNNNTTTTAAAATTTTIIIIOOOONNNN
  26.      These routines are part of the SCSL Scientific Library and can be loaded
  27.      using either the -lscs or the -lscs_mp option.  The -lscs_mp option
  28.      directs the linker to use the multi-processor version of the library.
  29.  
  30.      When linking to SCSL with -lscs or -lscs_mp, the default integer size is
  31.      4 bytes (32 bits). Another version of SCSL is available in which integers
  32.      are 8 bytes (64 bits).  This version allows the user access to larger
  33.      memory sizes and helps when porting legacy Cray codes.  It can be loaded
  34.      by using the -lscs_i8 option or the -lscs_i8_mp option. A program may use
  35.      only one of the two versions; 4-byte integer and 8-byte integer library
  36.      calls cannot be mixed.
  37.  
  38. PPPPUUUURRRRPPPPOOOOSSSSEEEE
  39.      CLATRD reduces NB rows and columns of a complex Hermitian matrix A to
  40.      Hermitian tridiagonal form by a unitary similarity transformation Q' * A
  41.      * Q, and returns the matrices V and W which are needed to apply the
  42.      transformation to the unreduced part of A. If UPLO = 'U', CLATRD reduces
  43.      the last NB rows and columns of a matrix, of which the upper triangle is
  44.      supplied;
  45.      if UPLO = 'L', CLATRD reduces the first NB rows and columns of a matrix,
  46.      of which the lower triangle is supplied.
  47.  
  48.      This is an auxiliary routine called by CHETRD.
  49.  
  50.  
  51. AAAARRRRGGGGUUUUMMMMEEEENNNNTTTTSSSS
  52.      UPLO    (input) CHARACTER
  53.              Specifies whether the upper or lower triangular part of the
  54.              Hermitian matrix A is stored:
  55.              = 'U': Upper triangular
  56.              = 'L': Lower triangular
  57.  
  58.  
  59.  
  60.  
  61.  
  62.  
  63.                                                                         PPPPaaaaggggeeee 1111
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70. CCCCLLLLAAAATTTTRRRRDDDD((((3333SSSS))))                                                          CCCCLLLLAAAATTTTRRRRDDDD((((3333SSSS))))
  71.  
  72.  
  73.  
  74.      N       (input) INTEGER
  75.              The order of the matrix A.
  76.  
  77.      NB      (input) INTEGER
  78.              The number of rows and columns to be reduced.
  79.  
  80.      A       (input/output) COMPLEX array, dimension (LDA,N)
  81.              On entry, the Hermitian matrix A.  If UPLO = 'U', the leading n-
  82.              by-n upper triangular part of A contains the upper triangular
  83.              part of the matrix A, and the strictly lower triangular part of A
  84.              is not referenced.  If UPLO = 'L', the leading n-by-n lower
  85.              triangular part of A contains the lower triangular part of the
  86.              matrix A, and the strictly upper triangular part of A is not
  87.              referenced.  On exit:  if UPLO = 'U', the last NB columns have
  88.              been reduced to tridiagonal form, with the diagonal elements
  89.              overwriting the diagonal elements of A; the elements above the
  90.              diagonal with the array TAU, represent the unitary matrix Q as a
  91.              product of elementary reflectors; if UPLO = 'L', the first NB
  92.              columns have been reduced to tridiagonal form, with the diagonal
  93.              elements overwriting the diagonal elements of A; the elements
  94.              below the diagonal with the array TAU, represent the  unitary
  95.              matrix Q as a product of elementary reflectors.  See Further
  96.              Details.  LDA     (input) INTEGER The leading dimension of the
  97.              array A.  LDA >= max(1,N).
  98.  
  99.      E       (output) REAL array, dimension (N-1)
  100.              If UPLO = 'U', E(n-nb:n-1) contains the superdiagonal elements of
  101.              the last NB columns of the reduced matrix; if UPLO = 'L', E(1:nb)
  102.              contains the subdiagonal elements of the first NB columns of the
  103.              reduced matrix.
  104.  
  105.      TAU     (output) COMPLEX array, dimension (N-1)
  106.              The scalar factors of the elementary reflectors, stored in
  107.              TAU(n-nb:n-1) if UPLO = 'U', and in TAU(1:nb) if UPLO = 'L'.  See
  108.              Further Details.  W       (output) COMPLEX array, dimension
  109.              (LDW,NB) The n-by-nb matrix W required to update the unreduced
  110.              part of A.
  111.  
  112.      LDW     (input) INTEGER
  113.              The leading dimension of the array W. LDW >= max(1,N).
  114.  
  115. FFFFUUUURRRRTTTTHHHHEEEERRRR DDDDEEEETTTTAAAAIIIILLLLSSSS
  116.      If UPLO = 'U', the matrix Q is represented as a product of elementary
  117.      reflectors
  118.  
  119.         Q = H(n) H(n-1) . . . H(n-nb+1).
  120.  
  121.      Each H(i) has the form
  122.  
  123.         H(i) = I - tau * v * v'
  124.  
  125.      where tau is a complex scalar, and v is a complex vector with v(i:n) = 0
  126.  
  127.  
  128.  
  129.                                                                         PPPPaaaaggggeeee 2222
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136. CCCCLLLLAAAATTTTRRRRDDDD((((3333SSSS))))                                                          CCCCLLLLAAAATTTTRRRRDDDD((((3333SSSS))))
  137.  
  138.  
  139.  
  140.      and v(i-1) = 1; v(1:i-1) is stored on exit in A(1:i-1,i), and tau in
  141.      TAU(i-1).
  142.  
  143.      If UPLO = 'L', the matrix Q is represented as a product of elementary
  144.      reflectors
  145.  
  146.         Q = H(1) H(2) . . . H(nb).
  147.  
  148.      Each H(i) has the form
  149.  
  150.         H(i) = I - tau * v * v'
  151.  
  152.      where tau is a complex scalar, and v is a complex vector with v(1:i) = 0
  153.      and v(i+1) = 1; v(i+1:n) is stored on exit in A(i+1:n,i), and tau in
  154.      TAU(i).
  155.  
  156.      The elements of the vectors v together form the n-by-nb matrix V which is
  157.      needed, with W, to apply the transformation to the unreduced part of the
  158.      matrix, using a Hermitian rank-2k update of the form:  A := A - V*W' -
  159.      W*V'.
  160.  
  161.      The contents of A on exit are illustrated by the following examples with
  162.      n = 5 and nb = 2:
  163.  
  164.      if UPLO = 'U':                       if UPLO = 'L':
  165.  
  166.        (  a   a   a   v4  v5 )              (  d                  )
  167.        (      a   a   v4  v5 )              (  1   d              )
  168.        (          a   1   v5 )              (  v1  1   a          )
  169.        (              d   1  )              (  v1  v2  a   a      )
  170.        (                  d  )              (  v1  v2  a   a   a  )
  171.  
  172.      where d denotes a diagonal element of the reduced matrix, a denotes an
  173.      element of the original matrix that is unchanged, and vi denotes an
  174.      element of the vector defining H(i).
  175.  
  176.  
  177. SSSSEEEEEEEE AAAALLLLSSSSOOOO
  178.      INTRO_LAPACK(3S), INTRO_SCSL(3S)
  179.  
  180.      This man page is available only online.
  181.  
  182.  
  183.  
  184.  
  185.  
  186.  
  187.  
  188.  
  189.  
  190.  
  191.  
  192.  
  193.  
  194.  
  195.                                                                         PPPPaaaaggggeeee 3333
  196.  
  197.  
  198.  
  199.